diff options
Diffstat (limited to 'app/[lng]')
| -rw-r--r-- | app/[lng]/evcp/(evcp)/email-log/page.tsx | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/app/[lng]/evcp/(evcp)/email-log/page.tsx b/app/[lng]/evcp/(evcp)/email-log/page.tsx new file mode 100644 index 00000000..b73674e4 --- /dev/null +++ b/app/[lng]/evcp/(evcp)/email-log/page.tsx @@ -0,0 +1,59 @@ +import * as React from "react" +import { type Metadata } from "next" +import { Shell } from "@/components/shell" +import { Skeleton } from "@/components/ui/skeleton" +import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" +import { SearchParams } from "@/types/table" +import { SearchParamsEmailLogCache } from "@/lib/email-log/validations" +import { getEmailLogList } from "@/lib/email-log/service" +import { EmailLogTable } from "@/lib/email-log/table/email-log-table" + +export const metadata: Metadata = { + title: "이메일 발신 이력 조회", + description: "발신 이력을 조회합니다.", +} + +interface EmailLogPageProps { + searchParams: SearchParams +} + +export default async function EmailLogPage(props: EmailLogPageProps) { + const searchParams = await props.searchParams + const search = SearchParamsEmailLogCache.parse(searchParams) + + const promises = Promise.all([ + getEmailLogList(search), + ]) + + return ( + <Shell className="gap-2"> + <div className="flex items-center justify-between space-y-2"> + <div className="flex items-center justify-between space-y-2"> + <div> + <div className="flex items-center gap-2"> + <h2 className="text-2xl font-bold tracking-tight">이메일 발신 이력 조회</h2> + </div> + </div> + </div> + </div> + + <React.Suspense fallback={<Skeleton className="h-7 w-52" />}> + </React.Suspense> + <React.Suspense + fallback={ + <DataTableSkeleton + columnCount={5} + searchableColumnCount={1} + filterableColumnCount={2} + cellWidths={["12rem", "18rem", "18rem", "30rem", "12rem"]} + shrinkZero + /> + } + > + <EmailLogTable promises={promises} /> + </React.Suspense> + </Shell> + ) +} + + |
